Telegram Group & Telegram Channel
🔁 Как перевернуть последовательность в Python: срезы, .reverse() и reversed()

Иногда нужно пройтись по списку в обратном порядке. Python предлагает как минимум три способа сделать это. Разберём, чем они отличаются и когда что использовать.

1️⃣ Срез с шагом -1

Срезы в Python поддерживают формат [start:stop:step]. Если шаг отрицательный, список читается справа налево:
colors = ["purple", "blue", "green", "pink", "red"]
print(colors[::-1])
# ['red', 'pink', 'green', 'blue', 'purple']


Можно использовать это прямо в цикле:
for color in colors[::-1]:
print("I like", color)


Но есть нюанс: этот трюк работает только с последовательностями, то есть объектами, у которых есть индексация (списки, строки, кортежи).

2️⃣ Метод .reverse()

Метод .reverse() переворачивает список на месте, изменяя оригинальный объект:
colors = ["purple", "blue", "green", "pink", "red"]
colors.reverse()
print(colors)
# ['red', 'pink', 'green', 'blue', 'purple']


Важно:
— Метод не возвращает новый список, а изменяет оригинал.
— Работает только с типом list. Строки, кортежи и другие объекты не поддерживают .reverse().

3️⃣ Функция reversed()

Наиболее универсальный и «питоничный» способ — использовать встроенную функцию reversed():
colors = ["purple", "blue", "green", "pink", "red"]
for color in reversed(colors):
print("I like", color)


Плюсы reversed():
— Работает на любых обратимых итерируемых объектах, не только на списках.
— Не копирует список — возвращает итератор, который идёт с конца.
— Оригинальный объект не изменяется.

Можно использовать next() для получения элементов по одному:
r = reversed(colors)
next(r) # 'red'
next(r) # 'pink'


Даже со словарями

Словари в Python 3.7+ сохраняют порядок добавления. Значит, их можно тоже «перевернуть»:
capitals = {
"New South Wales": "Sydney",
"Victoria": "Melbourne",
"Western Australia": "Perth",
}

for state, capital in reversed(capitals.items()):
print(f"The capital of {state} is {capital}")


Как reversed() похож на другие помощники циклов:
enumerate() — добавляет индексацию
zip() — объединяет несколько последовательностей
reversed() — переворачивает порядок обхода

for i, color in enumerate(colors, 1):
print(f"{i}. {color}")


Что нельзя «перевернуть»

Не все объекты в Python можно перевернуть. Например, файлы и генераторы не поддерживают reversed(), потому что у них нет фиксированной длины и индексов.

Вывод

• Если нужно просто получить копию списка в обратном порядке — используйте colors[::-1].
• Если хотите перевернуть список на месте — метод .reverse().
• Если важно не трогать оригинал, сэкономить память и работать с любыми итерируемыми объектами — используйте reversed().


💬 Поделитесь в комментариях, каким способом чаще пользуетесь вы.
🔁 Репостните коллеге, который до сих пор пишет for i in range(len(...)).

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/pyproglib/6828
Create:
Last Update:

🔁 Как перевернуть последовательность в Python: срезы, .reverse() и reversed()

Иногда нужно пройтись по списку в обратном порядке. Python предлагает как минимум три способа сделать это. Разберём, чем они отличаются и когда что использовать.

1️⃣ Срез с шагом -1

Срезы в Python поддерживают формат [start:stop:step]. Если шаг отрицательный, список читается справа налево:

colors = ["purple", "blue", "green", "pink", "red"]
print(colors[::-1])
# ['red', 'pink', 'green', 'blue', 'purple']


Можно использовать это прямо в цикле:
for color in colors[::-1]:
print("I like", color)


Но есть нюанс: этот трюк работает только с последовательностями, то есть объектами, у которых есть индексация (списки, строки, кортежи).

2️⃣ Метод .reverse()

Метод .reverse() переворачивает список на месте, изменяя оригинальный объект:
colors = ["purple", "blue", "green", "pink", "red"]
colors.reverse()
print(colors)
# ['red', 'pink', 'green', 'blue', 'purple']


Важно:
— Метод не возвращает новый список, а изменяет оригинал.
— Работает только с типом list. Строки, кортежи и другие объекты не поддерживают .reverse().

3️⃣ Функция reversed()

Наиболее универсальный и «питоничный» способ — использовать встроенную функцию reversed():
colors = ["purple", "blue", "green", "pink", "red"]
for color in reversed(colors):
print("I like", color)


Плюсы reversed():
— Работает на любых обратимых итерируемых объектах, не только на списках.
— Не копирует список — возвращает итератор, который идёт с конца.
— Оригинальный объект не изменяется.

Можно использовать next() для получения элементов по одному:
r = reversed(colors)
next(r) # 'red'
next(r) # 'pink'


Даже со словарями

Словари в Python 3.7+ сохраняют порядок добавления. Значит, их можно тоже «перевернуть»:
capitals = {
"New South Wales": "Sydney",
"Victoria": "Melbourne",
"Western Australia": "Perth",
}

for state, capital in reversed(capitals.items()):
print(f"The capital of {state} is {capital}")


Как reversed() похож на другие помощники циклов:
enumerate() — добавляет индексацию
zip() — объединяет несколько последовательностей
reversed() — переворачивает порядок обхода

for i, color in enumerate(colors, 1):
print(f"{i}. {color}")


Что нельзя «перевернуть»

Не все объекты в Python можно перевернуть. Например, файлы и генераторы не поддерживают reversed(), потому что у них нет фиксированной длины и индексов.

Вывод

• Если нужно просто получить копию списка в обратном порядке — используйте colors[::-1].
• Если хотите перевернуть список на месте — метод .reverse().
• Если важно не трогать оригинал, сэкономить память и работать с любыми итерируемыми объектами — используйте reversed().


💬 Поделитесь в комментариях, каким способом чаще пользуетесь вы.
🔁 Репостните коллеге, который до сих пор пишет for i in range(len(...)).

Библиотека питониста #буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tg-me.com/pyproglib/6828

View MORE
Open in Telegram


Библиотека питониста | Python Django Flask Telegram | DID YOU KNOW?

Date: |

In many cases, the content resembled that of the marketplaces found on the dark web, a group of hidden websites that are popular among hackers and accessed using specific anonymising software.“We have recently been witnessing a 100 per cent-plus rise in Telegram usage by cybercriminals,” said Tal Samra, cyber threat analyst at Cyberint.The rise in nefarious activity comes as users flocked to the encrypted chat app earlier this year after changes to the privacy policy of Facebook-owned rival WhatsApp prompted many to seek out alternatives.

How Does Bitcoin Work?

Bitcoin is built on a distributed digital record called a blockchain. As the name implies, blockchain is a linked body of data, made up of units called blocks that contain information about each and every transaction, including date and time, total value, buyer and seller, and a unique identifying code for each exchange. Entries are strung together in chronological order, creating a digital chain of blocks. “Once a block is added to the blockchain, it becomes accessible to anyone who wishes to view it, acting as a public ledger of cryptocurrency transactions,” says Stacey Harris, consultant for Pelicoin, a network of cryptocurrency ATMs. Blockchain is decentralized, which means it’s not controlled by any one organization. “It’s like a Google Doc that anyone can work on,” says Buchi Okoro, CEO and co-founder of African cryptocurrency exchange Quidax. “Nobody owns it, but anyone who has a link can contribute to it. And as different people update it, your copy also gets updated.”

Библиотека питониста | Python Django Flask from us


Telegram Библиотека питониста | Python, Django, Flask
FROM USA